package com.zhoug.mpchart.core.styleconfig;

import com.github.mikephil.charting.model.GradientColor;

import java.util.List;

/**
 * @Author: zhoug
 * @Date: 2024-02-04
 * @Description:
 */
public interface IMPBarStyleConfig extends IMPStyleConfig {

    /**
     * 设置柱子颜色
     * @param barColors
     */
    void setBarColors(int[] barColors);

    /**
     * 设置柱子渐变色 优先级高于{@link #setBarColors(int[])}
     * @param gradientColors
     */
    void setGradientColors(List<GradientColor> gradientColors);

    /**
     * 堆叠 优先级高于{@link  #setOverlap(boolean)}
     * @param stackBar
     */
    void setStackBar(boolean stackBar);

    /**
     * 重叠
     * @param overlap
     */
    void setOverlap(boolean overlap);

    void setBarWidth(float barWidth);

    void setGroupSpace(float groupSpace);

    void setBarSpace(float barSpace);

    void setSpaceIsPercent(boolean spaceIsPercent);

    int[] getBarColors();

    List<GradientColor> getGradientColors();
    /**
     * 堆叠
     */
    boolean isStackBar();
    /**
     * 重叠
     */
    boolean isOverlap();

    float getBarWidth();

    float getGroupSpace();

    float getBarSpace();

    boolean isSpaceIsPercent();

    int getBarColor(int index);

    GradientColor getBarGradientColor(int index);
}
